Device manufacturers commonly sell products into different markets or price points, though the devices have similar bills of material and/or manufacturing cost. The manufacturer differentiates the devices by the capabilities they offer, for example a device with fewer capabilities may sell for a lower price than the same device with additional or more sophisticated capabilities. Issues arise when customers become interested I upgrading a device for more capabilities. A customer may have initially desired a device with fewer capabilities at the lower price point, and later decided the more sophisticated (and, consequently perhaps, more expensive) suite of capabilities is necessary or preferred. In terms of licensing, rights are defined on a host and licensed software is tied to a particular hardware identity, thus limiting upgrade opportunities or hardware substitution.
An upgrade for a particular device can involve licensing a new application to provide a new functionality on the device. Some licenses are purchases in a permanent capacity, meaning they never expire. Other licenses can have expiration dates or times, while others are considered trial licenses. A user may usually request a new license when an expiration date or time has been reached, or when a trial has ended. Manufacturers and application publishers are faced with the challenge of users altering the clock on a device to provide for a longer period of use of the licensed application than was originally agreed to.
A method and system for automated clock wind-back recovery are disclosed. According to one embodiment, a computer-implemented method comprises requesting a license to access an application and storing a time anchor, the time anchor comprising a recent system time observation. Clock modification is detected, wherein detecting clock modification comprises comparing a license expiration date to a current system time. The time anchor is compared to a trusted time authority value, the trusted time authority value comprising the current system time and a tolerance. The time anchor is updated, clock modification is corrected, and access to the application is retrieved.